/*
    ts里面声明变量和常量 ， 固定语法

        let/const/var 变量:类型 = 值;
*/ 

let str:string = "abc";
// 其实ts也可以自动进行类型的推导
let str2 = "DeF";

// 小写的number指的是字面量类型的数字
let str3:number;
// 大小的Number指的是对象类型的数字
let n:Number;

// 没法进行类型推导的时候，一定把类型约束加上
function add(a:number,b:number){
    return a + b;
}


// ts里面的变量，一旦确定了类型，就无法进行类型的修改
// 以前写js的时候
// var a = 10
// a = "abc"
// 上面这个写法是ok的
// 这样会有什么问题 ？ -- 如果别不小心把这个数据修改了，本来应该是一个数字，不小心变成了字符串
// 1000+1000 = 2000
//  "1000" + 1000 = "10001000"
// 所以对于类型来说，最好是严格安全的
let str4 = 'abc';
str4 = 100; // 不用测试就已经把bug给排除了
